<!DOCTYPE html>
            
<HTML>
<HEAD>
<meta name="booktitle" content="Developing Applications With Objective Caml" >
 <meta charset="ISO-8859-1"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<META name="GENERATOR" content="hevea 1.05-7 of 2000-02-24">
<META NAME="Author" CONTENT="Christian.Queinnec@lip6.fr">
<LINK rel=stylesheet type="text/css" href="videoc-ocda.css">
<script language="JavaScript" src="videoc.js"><!--
//--></script>
<TITLE>
 Summary
</TITLE>
</HEAD>
<BODY class="regularBody">
<A HREF="book-ora147.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="index.html"><IMG SRC ="contents_motif.gif" ALT="Contents"></A>
<A HREF="book-ora149.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
<HR>

<H2> Summary</H2>
This chapter described the object extension of the language Objective CAML.
The class organization is an alternative to modules that, thanks to
inheritance and delayed binding, allows object
modeling of an application, as well as reusability and adaptability of
programs. This extension is
integrated with the type system of Objective CAML and adds the notion of subtype,
which allows instances to be used as a subtype in any place where a value of this
type is expected. By combining subtyping and delayed binding, we obtain
inclusion polymorphism, which, for instance, allows us to build homogeneous lists
from the point of view of types, albeit non-homogeneous with regard to
behavior.<BR>
<BR>
<HR>
<A HREF="book-ora147.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A>
<A HREF="index.html"><IMG SRC ="contents_motif.gif" ALT="Contents"></A>
<A HREF="book-ora149.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>
